"I dream of painting and then I paint my dream." - Vincent Van Gogh

Introduction

Creation of art is among the highest form of expression of human mind and imagination. The ability of communicating imagination sets us apart from all other beings. Painting, being an expression of visual language, have attracted and connected the brilliant human minds since the dawn of civilization - from early drawings on walls of caves to paper or glass paintings of modern times, from charcoals in prehistoric times to water, oil, or pastel colors of today. We have travelled a long way, and have finally reached a stage where not only humans but computers, another brilliant creation of human minds, is creating paintings.

For an enthusiast of arts, identifying the paintings of her favorite artists is not that difficult, given years of careful practice and research. Given a painting, she can easily identify if it was painted by a painter she is passionate about. But can a computer do the same? Can a machine without emotions identify who the genius is behind a mindblowing painting?

In this kernel, let us try to explore that direction, using techniques of deep learning.

Special thanks to Icaro for sharing this wonderful dataset with us!

Objective:

Develop an algorithm which will identify the artist when provided with a painting, with state of the art precision.

My high-level approach to solution:

Data processing:

Modelling and Training:

Predictions:

Let's implement "DeepArtist" :)

Read data

Data Processing

Data Augmentation

Rotation and Zoom Augmentation

Brightness and Contrast Augmentation

Build Model

Training graph

Evaluate performance

Confusion Matrix. Look at the style of the artists which the model thinks are almost similar.

Evaluate performance by predicting on random images from dataset

This portion is just for fun :) Replace the variable url with an image of one of the 11 artists above and run this cell.